package com.github.tj123.common;

import com.github.tj123.common.convert.BeanConvertException;
import com.github.tj123.common.convert.BeanUtil;

import java.util.Map;

/**
 * 可以转换为 map 的类
 */
public interface Mapable {

    /**
     * 对象转为 map 包含为空字段
     */
    default Map<String, Object> toMap() throws BeanConvertException {
        return toMap(true);
    }


    /**
     * 对象转为 map
     *
     * @param includeNull 是否包含空
     * @return
     */
    default Map<String, Object> toMap(boolean includeNull) throws BeanConvertException {
        return BeanUtil.toMap(this, includeNull);
    }
}
